This invention relates to an image information conversion apparatus and an image information conversion method, and more particularly to an image information conversion apparatus and an image information conversion method which are used to receive, through network media such as a satellite broadcast, a cable television broadcast or the Internet or process, on a recording medium such as an optical disk or a magneto-optical disk, image information in the form of a bit stream compressed by orthogonal transform such as discrete cosine transform and motion compensation.
In recent years, an apparatus which complies with a method wherein image information is handled as digital data and the redundancy unique to image information is utilized to compress image information by orthogonal transform such as, for example, discrete cosine transform and motion compensation in order to allow transmission and storage of information with a high efficiency has been and is being popularized in both of information distribution from a broadcasting station or the like and information reception by general homes.
Particularly, MPEG2 standardized by the MPEG (Moving Picture Experts Group) is defined as a general purpose image coding system in the ISO/IEC 13818-2 and covers both of interleaved scan images and progressive scan images as well as standard resolution images and high resolution images. Therefore, it is expected that the MPEG2 be used by wide varieties of applications from professional applications to consumer applications in the future.
Where such an MPEG2 compression system as described above is used, realization of a high compression ratio and a good picture quality can be anticipated by allocating, to interleaved scan images of a standard resolution having, for example, 720×480 pixels, a code amount (hereinafter referred to as bit rate) of 4 to 8 Mbps or by allocating, to interleaved scan images of a high resolution having, for example, 1,920×1,088 pixels, a bit rate of 18 to 22 Mbps.
The MPEG2 is directed to high picture quality coding suitable principally for broadcasting, but is not ready for a coding system of a bit rate lower than, that is, of a compression ratio higher than, that of the MPEG1. However, from popularization of portable terminals, it has been expected that the need for a coding system of a higher compression ratio increase in the future. Therefore, the MPEG4 coding system has been standardized, and the image coding system of the MPEG4 was approved as international standards of the ISO/IEC 14496-2 in December 1998.
In order to process MPEG2 image compression information (hereinafter referred to as MPEG2 bit stream) coded once so as to be suitable for digital broadcasting on a portable terminal or the like, it is demanded to convert the MPEG2 bit stream into MPEG4 image compression information (hereinafter referred to as MPEG4 bit stream) of a lower bit rate.
An image information conversion apparatus (transcoder) which satisfies the demand is disclosed in Susie J. Wee, John G. Apostlopoulos and Nick Feamster, “Field-to-Frame Transcoding with Spatial and Temporal Downsampling”, ICIP '99 (hereinafter referred to as document 1). The image information conversion apparatus mentioned is shown in FIG. 4.
Referring to FIG. 4, the image information conversion apparatus 100 shown includes a picture type discrimination section 101, an MPEG2 image information (I/P picture) decoding section 102, a reduction section 103, a video memory 104, an MPEG4 image information (I/P-VOP) coding section 105, a motion vector synthesis section 106, and a motion vector detection section 107. It is to be noted that the VOP (Video Object Plane) in the MPEG4 corresponds to the frame in the MPEG2.
The picture type discrimination section 101 receives data of frames of MPEG2 image compression information (hereinafter referred to as MPEG2 bit stream) of an interleaved scan as an input thereto and discriminates whether data of each frame is of MPEG2 image information (hereinafter referred to as I/P picture which signifies an intra-image coded picture/forward predictive coded picture) or of a B picture (bi-directionally predicted picture) The picture type discrimination section 101 outputs only the former data to the MPEG2 image information decoding section 102 of the following stage.
The MPEG2 image information decoding section 102 executes processing similar to that of an ordinary MPEG2 image information decoding section. However, since data regarding B pictures are discarded by the picture type discrimination section 101, only it is required for the MPEG2 image information decoding section 102 to have a function of decoding only I/P pictures.
The reduction section 103 receives pixel values from the MPEG2 image information decoding section 102 and performs processing of reducing the pixel values to ½ in the horizontal direction and discarding data of one of the first and second fields in the vertical direction while leaving data of the other field to produce a progressive scan image having a size of ¼ that of the inputted image information.
If the MPEG2 bit stream inputted from the MPEG2 image information decoding section 102 represents images compliant with the standards of the NTSC (National Television System Committee), that is, interleaved scan images of 720×480 pixels and 30 Hz, then the images after the reduction by the reduction section 103 have a size of 360×240 pixels. However, in order to allow the processing in a unit of a macro block when the MPEG4 image information coding section 105 in a succeeding stage performs coding, the pixel numbers both in the horizontal and vertical directions must be multiples of 16. Accordingly, the reduction section 103 further performs supplementation or discarding of pixels for satisfying the requirement. In particular, in the specific case described above, eight lines, for example, at the right end or the left end in the horizontal direction are discarded so that the image has a size of 352×240 pixels.
The progressive scan image produced by the reduction section 103 is stored into the video memory 104 and then undergoes coding processing by the MPEG4 image information coding section 105, and is outputted as an MPEG4 bit stream.
Motion vector information in the inputted MPEG2 bit stream is supplied to the motion vector synthesis section 106, by which it is mapped to motion vectors for the image information after the reduction.
The motion vector detection section 107 detects motion vectors of a high degree of accuracy based on the motion vector values synthesized by the motion vector synthesis section 106.
The image information conversion apparatus 100 disclosed in document 1 produces an MPEG4 bit stream of progressive scan images having a size of ½×½ that of an inputted MPEG2 bit stream. For example, where the inputted MPEG2 bit stream complies with the NTSC standards, the MPEG4 bit stream to be outputted has the SIF size (352×240 pixels). The image information conversion apparatus 100 can convert the inputted MPEG2 bit stream also into an image of any other image size, for example, the QSIF (176×112 pixels) size which is a size of approximately ¼×¼ in the example described above, by modifying the operation of the reduction section 103.
Further, the image information conversion apparatus 100 performs, as a process by the MPEG2 image information decoding section 102, a decoding process using all of eighth-order discrete cosine transform coefficients in the inputted MPEG2 bit stream for the horizontal and vertical directions or a decoding process using only low-frequency components from among eighth-order discrete cosine transform coefficients only for the horizontal direction or for both of the horizontal and vertical directions thereby to reduce the arithmetic operation amount for the decoding process and the video memory capacity while suppressing the picture quality deterioration to the minimum.
In the image information conversion apparatus 100 shown in FIG. 4, the code amount control of the MPEG4 image information coding section 105 makes a significant factor of determination of the picture quality of an MPEG4 bit stream In the ISO/IEC 14496-2, the system for code amount control is not specifically prescribed, and each vendor can use a system which is considered optimum from the point of view of the arithmetic operation amount and the output picture quality in accordance with an application to be used. In the following, a system prescribed in the MPEG2 Test Mode 15 (ISO/IEC JTC1/SC29/WG11 N0400) as a representative code amount control system is described.
For the code amount control, bit distribution to each picture is performed as a first step using a target code amount (target bit rate) and a GOP (Group Of Pictures) configuration as input variables, and then rate control is performed using a virtual buffer, whereafter adaptive quantization for each macro block is performed finally taking a visual characteristic into consideration. The operation of the code amount control is illustrated in FIG. 5.
Referring to FIG. 5, first in step S101, the MPEG4 image information coding section 105 distributes an allocation bit amount for each picture in a GOP in accordance with a bit amount (hereinafter represented by R) to be allocated to those pictures which are not decoded as yet including allocation object pictures. This distribution is repeated in order of coded pictures in the GOP. In this instance, the code amount allocation to each picture is performed based on the following two assumptions.
First, it is assumed that the product of an average quantization scale code to be used for coding of each picture and the generated code amount is fixed for each picture type unless the screen does not change. Therefore, after each picture is coded, variables Xi, Xp and Xb (global complexity measures) each representative of the complexity of the screen are updated in accordance with the following expressions (1) to (3) for individual picture types:Xi=Si·Qi  (1)Xp=Sp·Qp  (2)Xb=Sb·Qb  (3)where Si, Sp and Sb are the generated code bit amounts upon picture coding, and Qi, Qp and Qb are average quantization scale codes upon picture coding. The variables Xi, Xp and Xb have initial values represented by the following expressions (4) to (6), respectively, using the target code amount (target bit rate) bit_rate [bits/sec]:Xi=160×bit_rate/115  (4)Xi=60×bit_rate/115  (5)Xi=42×bit_rate/115  (6)
Secondly, it is assumed that the picture quality of the entire image is always optimized when the ratios Kp and Kb of the quantization scale code of P and B pictures with reference to the quantization scale code of an I picture have values defined by the following expression (7):Kp=1.0;Kb=1.4  (7)
In particular, the quantization scale code of a B picture is always 1.4 times that of the quantization scale codes of I and P pictures. Here, it is supposed that, by coding a B picture rather roughly than I and P pictures, if the code amount saved with a B picture is added to that of an I or P picture, then the picture quality of the I or P picture is improved, and also the picture of a B picture which refers to the I or P picture is improved.
From the two assumptions specified as above, the allocation bit amounts (Ti, Tp, Tb) to the different pictures of the GOP have values given by the following expressions (8) to (10), respectively:                               T          i                =                  max          ⁢                      {                                          R                                  1                  +                                                                                    N                        p                                            ·                                              X                        p                                                                                                            X                        i                                            ·                                              K                        p                                                                              +                                                                                    N                        b                                            ·                                              X                        b                                                                                                            X                        i                                            ·                                              K                        b                                                                                                        ,                              bit_rate                                  8                  ×                  picture_rate                                                      }                                              (        8        )                                          T          p                =                  max          ⁢                      {                                          R                                                      N                    p                                    +                                                                                    N                        b                                            ·                                              K                        p                                            ·                                              X                        b                                                                                                            K                        b                                            ·                                              X                        p                                                                                                        ,                              bit_rate                                  8                  ×                  picture_rate                                                      }                                              (        9        )                                          T          b                =                  max          ⁢                      {                                          R                                                      N                    b                                    +                                                                                    N                        p                                            ·                                              K                        b                                            ·                                              X                        p                                                                                                            K                        p                                            ·                                              X                        b                                                                                                        ,                              bit_rate                                  8                  ×                  picture_rate                                                      }                                              (        10        )            where Np and Nb are the numbers of P and B pictures which are not coded in the GOP as yet.
Based on the allocation code amounts determined in this manner, each time a picture is coded in steps S101 and S102, the bit amount R to be allocated to a non-coded picture in the GOP is updated in accordance with the following expression (11):R=R−Si,p,b  (11)
On the other hand, when the first picture in the GOP is to be coded, the bit amount R is updated in accordance with the following expression (12):                     R        =                                            bit_rate              ×              N                        picture_rate                    +          R                                    (        12        )            where N is the number of pictures in the GOP. The initial value of the bit amount R at the start of a sequence is 0.
In step S102, in order to make the allocation bit amounts (Ti, Tp, Tb) to the pictures determined in accordance with the expressions (8) to (10) in step S101 and actual generation code amounts coincide with each other, quantization scale codes are determined based on capacities of three different virtual buffers set independently of each other for the individual pictures by feedback control in a unit of a macro block. First, prior to code of a jth macro block, the occupation amounts of the virtual buffers are determined in accordance with the following expressions (13) to (15):                               d          j          i                =                              d            o            i                    +                      B                          j              -              1                                -                                                    T                i                            ×                              (                                  j                  -                  1                                )                                      MB_cnt                                              (        13        )                                          d          j          p                =                              d            o            p                    +                      B                          j              -              1                                -                                                    T                p                            ×                              (                                  j                  -                  1                                )                                      MB_cnt                                              (        14        )                                          d          j          b                =                              d            o            b                    +                      B                          j              -              1                                -                                                    T                b                            ×                              (                                  j                  -                  1                                )                                      MB_cnt                                              (        15        )            where doi, dop and dob are the initial occupation amounts of the virtual buffers, Bj is the generation bit amount from the top of the picture to the jth macro block, and MB_cnt is the number of macro blocks in one picture. The occupation amounts (dMB—cnti, dMB—cntp, dMB—cntb) of the virtual buffers upon ending of coding of the individual pictures are used as initial values (doi, dop, dob) for the virtual buffer occupations for the next pictures.
Then, the quantization scale code for the jth macro block is calculated in accordance with the following expression (16):                               Q          j                =                                            d              j                        ×            31                    r                                    (        16        )            where r is a variable called reaction parameter used to control the response of a feedback loop and given by the following expression (17):                     r        =                  2          ×                      bit_rate            picture_rate                                              (        17        )            
The initial values of the virtual buffers at the start of coding are given by the following expressions (18) to (20):                               d          o          i                =                  10          ×                      r            31                                              (        18        )                                          d          o          p                =                              K            p                    ·                      d            o            i                                              (        19        )                                          d          o          b                =                              K            b                    ·                      d            o            i                                              (        20        )            
In step S103, the quantization scale codes determined in step S102 are modified with a variable called activity for each macro block so that they may be quantized finely at a flat portion at which deterioration can be visually observed comparatively conspicuously but may be quantized roughly at a complicated pattern portion at which deterioration can be visually observed comparatively less conspicuously.
The activity is given by the following expression (21) using pixel values of totaling 8 blocks including 4 blocks of a frame discrete cosine transform mode and 4 blocks of a field discrete cosine transform mode using brightness signal pixel values of the original picture:                                           act            j                    =                      1            +                                          min                                                      sblk                    =                    1                                    ,                  8                                            ⁢                              (                var_sblk                )                                                    ⁢                                  ⁢                  var_sblk          =                                    1              64                        ⁢                                          ∑                                  k                  =                  1                                64                            ⁢                                                (                                                            P                      k                                        -                                          P                      ~                                                        )                                2                                                    ⁢                                  ⁢                              P            ~                    =                                    1              64                        ⁢                                          ∑                                  k                  =                  1                                64                            ⁢                              P                k                                                                        (        21        )            where Pk is the brightness signal intra-block pixel value of the original image. The reason why a minimum value is taken in the expression (21) is that it is intended to use finer quantization where a flat portion is included only at a portion in the macro block.
Further, a normalized activity Nactj whose value ranges from 0.5 to 2 is determined in accordance with the following expression (22):                               Nact          j                =                                            2              ×                              act                j                                      +            avg_act                                              act              j                        +                          2              ×              avg_act                                                          (        22        )            where avg-act is the average value of the activity actj of the picture coded last.
A quantization scale code mquantj with a visual characteristic taken into consideration is determined in accordance with the following expression (23) based on the quantization scale code Qj determined in step S102:mquantj=Qj×N_actj  (23)
By the way, as recited in “Theoretical Analysis of the MPEG Compression Efficiency and Application thereof to the Code Amount Control”, Shingaku Giho, IE-95, DSP95-10, May 1995 (hereinafter referred to as document 2), the code amount control system defined in the Test Mode 15 does not always provide a good picture quality in an MPEG2 image coding section.
In document 2, the following system is proposed particularly as a technique for providing an optimum code amount distribution for each of frames in a GOP to provide a good picture quality.
Where NI, NP and NB are the numbers of those I, P and B pictures in a GOP which are not coded as yet and the code amounts to be applied to them are represented by RI, RP and RB, respectively, such a fixed rate condition as given by the following expression (24) is satisfied:R=NI·RI+NP·RP+NB·RB  (24)
Where the quantization step sizes of individual frames are represented by QI, QP and QB and m is an order number for coordinating a quantization step size and a reproduction error variance with each other, that is, if it is assumed that minimization of an average of the quantization step sizes raised to the mth power minimizes the reproduction error variance, then an optimum code amount distribution for each frame in the GOP is given by minimizing the expression (25) given below:                                                         N              I                        ·                          Q              I              m                                +                                    N              P                        ·                          Q              P              m                                +                                    N              B                        ·                          Q              B              m                                                            N            I                    +                      N            P                    +                      N            B                                              (        25        )            
It is to be noted that the average scale Q and the code amount R of the frames are coordinated with the complexity X of each frame as a medium variable used also in the Test Model 15 as given by the following expression (26):Q·Ra=X  (26)
Accordingly, by calculating such code amounts RI, RP and RB as minimize the expression (25) using the Lagrange's method of undetermined multipliers taking the expression (26) into consideration under the restrictive condition of the expression (24), such values as given by the following expressions (27) to (29) are determined as optimum code amounts RI, RP and RB, respectively:                               R          I                =                  R                      1            +                                          N                P                            ·                                                (                                                            X                      P                                                              X                      I                                                        )                                                  m                                      1                    +                                          m                      ⁢                                                                                           ⁢                      α                                                                                            +                                          N                B                            ·                                                (                                                            X                      B                                                              X                      I                                                        )                                                  m                                      1                    +                                          m                      ⁢                                                                                           ⁢                      α                                                                                                                              (        27        )                                          R          P                =                  R                                    N              P                        +                                          N                B                            ·                                                (                                                            X                      B                                                              X                      P                                                        )                                                  m                                      1                    +                                          m                      ⁢                                                                                           ⁢                      α                                                                                                                              (        28        )                                          R          B                =                  R                                    N              B                        +                                          N                P                            ·                                                (                                                            X                      P                                                              X                      B                                                        )                                                  m                                      1                    +                                          m                      ⁢                                                                                           ⁢                      α                                                                                                                              (        29        )            
Where α=1, the expressions (27) to (29) and the expressions (8) to (10) given hereinabove in the code amount control system defined in the MPEG2 Test Mode 15 have the following relationship. In particular, from the expressions (27) to (29), the parameters Kp and Kb for code amount control are adaptively calculated in accordance with the following expression (30) based on the complexities XI, XP and XB of each frame:                                           K            P                    =                                    (                                                X                  I                                                  X                  P                                            )                                      1                              1                +                m                                                    ;                              K            b                    =                                    (                                                X                  1                                                  X                  B                                            )                                      1                              1                +                m                                                                        (        30        )            
In document 2, it is disclosed that a good picture quality is obtained by setting the value of 1/(1+m) to approximately 0.6 to 1.2.
However, it is known that the following limitations are applied to the code amount control system defined in the MPEG2 Test Model 15.
The first limitation is that step S101 of FIG. 5 cannot cope with a scene change and therefore the parameter avg_act used in step S103 after the scene change has a wrong value. The second limitation is that it is not guaranteed that the restriction condition of the VBV (Video Buffer Verifier) prescribed in the MPEG2 and the MPEG4 is satisfied.
Accordingly, when the code amount control is performed actually, a countermeasure against the limitations is required.
Further, while the initial value of the reference quantization scale for the first I-VOP in the expression (18) is 10, this initial value is not always an appropriate value depending upon the pattern and the bit rate. Particularly with an image of the SIF or the QSIF, since the number of macro blocks is small, a time corresponding to several VOPs may possibly be required before the feedback loop for code amount control is stabilized. Therefore, picture quality deterioration at an initial stage of the Video object may possibly caused by an initial value of the reference quantization scale.